import axios from 'axios'

// 创建axios实例
const api = axios.create({
  baseURL: 'http://localhost:8080/api',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器 - 添加token
api.interceptors.request.use(
  config => {
    const token = localStorage.getItem('satoken')
    if (token) {
      config.headers['satoken'] = token
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器 - 处理token过期
api.interceptors.response.use(
  response => {
    return response
  },
  error => {
    if (error.response && error.response.status === 401) {
      // token过期或无效，清除本地存储并跳转到登录页
      localStorage.removeItem('satoken')
      localStorage.removeItem('userInfo')
      window.location.href = '/login'
    }
    return Promise.reject(error)
  }
)

// 认证相关API
export const authAPI = {
  // 用户登录
  login(loginData) {
    return api.post('/auth/login', loginData)
  },

  // 用户注册
  register(registerData) {
    return api.post('/auth/register', registerData)
  },

  // 用户登出
  logout() {
    return api.post('/auth/logout')
  },

  // 获取当前用户信息
  getUserInfo() {
    return api.get('/auth/userinfo')
  },

  // 检查登录状态
  checkLogin() {
    return api.get('/auth/check-login')
  },

  // 修改密码
  changePassword(passwordData) {
    return api.post('/auth/change-password', passwordData)
  },

  // 更新用户信息
  updateProfile(profileData) {
    return api.post('/auth/update-profile', profileData)
  },

  // 获取Token信息
  getTokenInfo() {
    return api.get('/auth/token-info')
  }
}

export default api